The present invention relates to semiconductor design technology, particularly to operation of a delay locked loop (DLL), and more particularly to a DLL, which can stably operate even under the worst operating condition of a semiconductor memory device such as noise interference, process/voltage/temperature (PVT) variation and frequent entry/exit of a power down mode.
Generally, in a synchronous semiconductor memory device such as a double data rate (DDR) synchronous DRAM (SDRAM), input/output data must be always synchronized with a reference clock.
The reference clock is an external clock (CLK and CLKB) inputted from an external device, for example, a memory controller. Therefore, the meaning the synchronous semiconductor memory device must transmit data in synchronization with the reference clock is that an output point of time of the data transmitted from the synchronous semiconductor memory device must be exactly equal to an edge or center of the external clock (CLK and CLKB).
As known from asynchronous semiconductor memory devices, however, data are not always outputted in synchronization with the external clock (CLK and CLKB) even though an output command and the external clock (CLK and CLKB) are applied to general semiconductor memory devices.
Why the data are not synchronized with the external clock (CLK and CLKB) in such a semiconductor memory device is as followings.
First, it is assumed that the external clock (CLK and CLKB) buffered through an input buffering circuit in the semiconductor memory device is an internal clock. The internal clock may change its phase while passing through various internal elements, e.g., a control circuit, a peripheral circuit and a cell array, of the semiconductor memory device. Accordingly, the internal clock is not synchronized with the external clock (CLK and CLKB) when the internal clock is outputted to the outside through an output buffering circuit.
Since the output data of the semiconductor memory device are outputted in synchronization with the internal clock, there is also a phase difference between the data and the external clock (CLK and CLKB), which corresponds to a phase difference between the internal clock and the external clock (CLK and CLKB). That is, the data outputted from the semiconductor memory device are asynchronous with the external clock (CLK and CLKB).
Therefore, in order to output the input/output data in synchronization with the external clock (CLK and CLKB) which is used as a reference clock in the semiconductor memory device, the internal clock must be inversely compensated for a delay time that the internal clock applied to an output pad is delayed with respect to the inputted external clock (CLK and CLKB) due to operation of the semiconductor memory device. Through such inverse compensation, the phase of the internal clock can be synchronized with the phase of the external clock (CLK and CLKB).
A phase locked loop (PLL) and a delay locked loop (DLL) are representatively used as a circuit for synchronizing the internal clock with the external clock (CLK and CLKB) by inversely compensating for the delay time that the phase of the internal clock is delayed.
The PLL is used for synchronizing a frequency and a phase at the same time using a frequency multiplication function when there is a frequency difference between the external clock, which is a reference clock mainly inputted from the outside, and the internal clock, which is used in the semiconductor memory device.
The DLL is used for synchronizing only a phase in the case where the external clock is equal in frequency to the internal clock.
Comparing only characteristics themselves of the PLL and the DLL with each other, the PLL seems to be more popularly used than the DLL because the PLL has a supplementary function, i.e., frequency multiplication function. Actually, however, the DLL is more popularly used than the PLL in the semiconductor memory device.
There may be several reasons for this, a representative one of which is that the DLL has such advantageous merits that the DLL is less affected by noise and can be formed in a smaller area than the PLL.
FIG. 1 is a block diagram illustrating a conventional DLL.
Referring to FIG. 1, the conventional DLL includes a delay-locking unit 100, a phase detection unit 120, and a phase mixing unit 140. The delay-locking unit 100 generates a first delay clock RISING_CLK corresponding to a first clock edge, e.g., rising edge of a reference clock REF_CLK, and a second delay clock FALLING_CLK corresponding to a second clock edge, e.g., falling edge of the reference clock REF_CLK so as to achieve a delay-locking. The phase detection unit 120 detects a phase difference between the first delay clock RISING_CLK and the second delay clock FALLING_CLK to output a weight select signal WR_SEL. The phase mixing unit 140 mixes phases of the first and second delay clocks RISING_CLK and FALLING_CLK by applying a weight corresponding to the weight select signal WR_SEL at a point of time when the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked, thereby outputting DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY. The conventional DLL further includes a phase split unit 160 and a dummy phase split unit 170. The phase split unit 160 splits phases of the DLL clock DLL_CLK_USE and DLL_CLK_DUMMY to generate first and second split clocks RCLKDLL and FCLKDLL. The dummy phase split unit 170 has the same configuration as the phase split unit 160 but does not operate actually.
The phase mixing unit 140 includes a delay lock enable signal generator 146, a mixing controller 142, a DCC phase mixer 144 and a dummy DCC phase mixer 145. The delay lock enable signal generator 146 generates a delay lock enable signal DCC_EN of which a logic level is determined in response to a first delay lock signal LOCK_STATE_R and a second delay lock signal LOCK_STATE_F. The first delay lock signal LOCK_STATE_R corresponds to whether the first delay clock RISING_CLK is delay locked or not, and the second delay lock signal LOCK_STATE_F corresponds to whether the second delay clock FALLING_CLK is delay locked or not. The mixing controller 142 generates a mixing control signal CTRL for controlling a mixing ratio of the first and second delay clocks RISING_CLK and FALLING_CLK in response to the weight select signal WR_SEL when the delay lock enable signal DCC_EN is activated. The DCC phase mixer 144 mixes phases of the first and second delay clocks RISING_CLK and FALLING_CLK at the mixing ratio corresponding to the mixing control signal CTRL to thereby output the DLL clock DLL_CLK_USE. The dummy DCC phase mixer 145 has the same configuration as the DCC phase mixer 144 but does not operate actually.
The delay-locking unit 100 includes a first phase delay 102, a second phase delay 104, a first delay replica model 103 and a second delay replica model 105 for achieving a delay-locking. The first phase delay 102 delays a first clock CLK_IN_R corresponding to a first clock edge, e.g., rising edge, of the reference clock REF_CLK by a delay time determined through comparing phases of the reference clock REF_CLK and a first feedback clock FEB_CLK1 with each other, thereby outputting the first delay clock RISING_CLK. The second phase delay 104 delays a second clock CLK_IN_F corresponding to a second clock edge, e.g., falling edge, of the reference clock REF_CLK by a delay time determined through comparing phases of the reference clock REF_CLK and a second feedback clock FEB_CLK2 with each other, thereby outputting the second delay clock FALLING_CLK. The first delay replica model 103 outputs the first feedback clock FEB_CLK1 by applying an actual delay condition of the first clock CLK_IN_R to the first delay clock RISING_CLK. The second delay replica model 105 outputs the second feedback clock FEB_CLK2 by applying an actual delay condition of the second clock CLK_IN_F to the second delay clock FALLING_CLK. The delay-locking unit 100 further includes a clock buffer 106 configured to buffer the external clocks CLK and CLKB inputted from the outside to output the reference clock REF_CLK and the first and second clocks CLK_IN_R and CLK_IN_F.
The first phase delay 102 includes a first phase comparator 1022 and a first delay line 1024. The first phase comparator 1022 compares the phase of the first feedback clock FEB_CLK1 with that of the reference clock REF_CLK to generate a first delay control signal DELAY_CON1. The first delay line 1024 delays the first clock CLK_IN_R by a delay time determined corresponding to the first delay control signal DELAY_CON1 to output the first delay clock RISING_CLK.
The second phase delay 104 includes a second phase comparator 1042 and a second delay line 1044. The second phase comparator 1042 compares the phase of the second feedback clock FEB_CLK2 with that of the reference clock REF_CLK to generate a second delay control signal DELAY_CON2. The second delay line 1044 delays the second clock CLK_IN_F by a delay time determined corresponding to the second delay control signal DELAY_CON2 to output the second delay clock FALLING_CLK.
Operation of the conventional DLL having the above configuration will be described below.
FIG. 2 is a timing diagram illustrating waveforms of clocks or signals during operation of the conventional DLL of FIG. 1.
In the left of FIG. 2, there are shown activation/deactivation states of the source clock REF_CLK, the first delay clock RISING_CLK, the second delay clock FALLING_CLK and the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY during the operation in a state before a delay is locked. For convenience in description, a state before the delay is locked will be referred to as a before-delay-locked state, and a state after the delay is locked will be referred to as an after-delay-locked state, hereinafter. Herein, the reference clock REF_CLK is generated by buffering the external clock CLK and CLKB through the clock buffer 106 when DLL starts operating initially, the first delay clock RISING_CLK is generated by delaying the first clock CLK_IN_R by an initial delay time through the first delay line 1024, the second delay clock FALLING_CLK is generated by delaying the second clock CLK_IN_F by an initial delay time through the second delay line 1044, and the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY are generated at an output terminal of the DLL.
Specifically, the reference clock REF_CLK is substantially the same as the external clock CLK and CLKB because the reference clock REF_CLK is a clock obtained by buffering the external clock CLK and CLKB. Although not shown, the first and second clocks CLK_IN_R and CLK_IN_F are also the same as the reference clock REF_CLK.
The first and second delay lines 1024 and 1044 are configured such that they have the same initial delay times ({circle around (1)} and {circle around (3)}) to delay received clocks and respectively output clocks of which phases are opposite to each other if receiving the same input clocks. Therefore, when the first and second clocks CLK_IN_R and CLK_IN_F, which are the same clocks, are respectively inputted to the first and second delay lines 1024 and 1044, the first and second delay clocks RISING_CLK and FALLING_CLK, which have opposite phases to each other, are outputted, as illustrated in FIGS. 1 and 2.
Comparing the first and second delay clocks RISING_CLK and FALLING_CLK with the reference clock REF_CLK, the first delay clock RISING_CLK has a rising edge after the initial delay time ({circle around (1)}) from a point of time corresponding to a first edge, e.g., rising edge, of the reference clock REF_CLK, and the second delay clock FALLING_CLK has a falling edge after the initial delay time ({circle around (3)}) from a point of time corresponding to a second edge, e.g., falling edge, of the reference clock REF_CLK.
In the before-delay-locked state, the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY are the same as the first and second delay clocks RISING_CLK and FALLING_CLK because the first and second delay clocks RISING_CLK and FALLING_CLK are not delay locked yet and thus the phase mixing unit 140 does not operate.
When the first and second delay clocks RISING_CLK and FALLING_CLK are not delay locked, the phase mixing unit 140 does not operate so that a clock inputted to the phase mixing unit 140 is bypassed.
Operation of the conventional DLL for changing activation/deactivation states of respective clocks in the before-delay-locked state will be more fully described below.
First, a rising edge of the first delay clock RISING_CLK outputted from the first delay line 1024 is delay locked, i.e., synchronized, with a rising edge of the reference clock REF_CLK by appropriately controlling the first delay line 1024 such that the first clock CLK_IN_R, which has been delayed by the initial delay time ({circle around (1)}), is further delayed by a first predetermined delay time ({circle around (2)}).
At the same time, a rising edge of the second delay clock FALLING_CLK outputted from the second delay line 1044 is delay locked, i.e., synchronized, with the rising edge of the reference clock REF_CLK by appropriately controlling the second delay line 1044 such that the second clock CLK_IN_F, which has been delayed by the initial delay time ({circle around (3)}), is further delayed by a second predetermined delay time ({circle around (4)}).
After the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked, a phase difference between the first and second delay clocks RISING_CLK and FALLING_CLK is detected so that the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY with a duty ratio corrected are generated.
For reference, in the before-delay-locked state, the dummy DCC phase mixer 145 of the phase mixing unit 140 bypasses the input clock like the DCC phase mixer 144. However, when entering the after-delay-locked state, the dummy DCC phase mixer 145 stops the bypassing operation and does not perform any operation. That is, in the after-delay-locked state, the dummy DCC phase mixer 145 does not output the DLL clock DLL_CLK_DUMMY that was outputted in the before-delay-locked state.
Likewise, before the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked, the dummy phase split unit 170 is connected to an output terminal of the dummy DCC phase mixer 145 and thus it serves as a load when bypassing a clock inputted from the dummy DCC phase mixer 145. In the after-delay-locked state, however, the dummy phase split unit 170 does not perform any operation because there is no bypassed clock.
In the right of FIG. 2, there are shown activation/deactivation states of various clocks or signals during operation in the after-delay-locked state, that is, during operation of detecting the phase difference between the first and second delay clocks RISING_CLK and FALLING_CLK to thereby generate the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY with a duty ratio corrected.
Generally, it is almost impossible for the external clock CLK and CLKB inputted from the outside to have a duty ratio of 50 to 50 exactly. Therefore, it is also impossible for the internal clock obtained by buffering the external clock CLK and CLKB to have a duty ratio of 50 to 50 exactly.
In synchronous semiconductor memory devices such as DDR SDRAMs, DDR2 SDRAMs and DDR3 SDRAMs, where one data is outputted at a rising edge of the internal clock and another data is outputted at a falling edge of the internal clock, if data is outputted corresponding to the internal clock that does not have a duty ratio of 50 to 50 exactly, a memory controller may receive incorrect data.
For this reason, the duty ratio of the outputted internal clock must be exactly corrected to 50 to 50. To this end, as described above, there is employed a phase-mixing method including: detecting the phase difference between the first and second delay clocks RISING_CLK and FALLING_CLK; and mixing phases of the first and second delay clocks RISING_CLK and FALLING_CLK by applying a weight to one of the first and second delay clocks RISING_CLK and FALLING_CLK according to the detection result.
In detail, in order to detect the phase difference between the first and second delay clocks RISING_CLK and FALLING_CLK, a falling edge point ({circle around (7)}) of the first delay clock RISING_CLK is compared with a falling edge point ({circle around (8)}) of the second delay clock FALLING_CLK assuming that rising edge points of the first and second delay clocks RISING_CLK and FALLING_CLK are equal to each other because the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked. Thereafter, it is detected which one has a longer activation section between the first and second delay clocks RISING_CLK and FALLING_CLK.
To apply a weight to the delay clock, one of the first and second delay clocks RISING_CLK and FALLING_CLK, to which a weight will be applied, is selected first using a weight selection signal WR_SEL. Here, a degree of weight can also be selected by appropriately adjusting information that the weight selection signal WR_SEL signifies.
Referring to the right of FIG. 2, it can be appreciated that a method of correcting the duty ratio is divided into two modes in the after-delay-locked state.
In a first mode, an activation section of the first delay clock RISING_CLK is relatively narrow but an activation section of the second delay clock FALLING_CLK is relatively broad in a state that the rising edges of the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked with the rising edge of the reference clock REF_CLK.
Contrariwise, in a second mode, an activation section of the first delay clock RISING_CLK is relatively broad but an activation section of the second delay clock FALLING_CLK is relatively narrow in a state that the rising edge of the reference clock REF_CLK is delay locked with the rising edges of the first and second delay clocks RISING_CLK and FALLING_CLK.
A method of correcting the duty ratio using the weight selection signal WR_SEL will be illustrated depending on the first and second modes.
In the first mode, since the activation section of the first delay clock RISING_CLK is relatively narrow but the activation section of the second delay clock FALLING_CLK is relatively broad, the weight selection signal WR_SEL goes to a logic high level and thus the weight is applied to the first delay clock RISING_CLK. As a result, the duty ratio of the DLL clock DLL_CLK_USE outputted finally can be 50 to 50 exactly.
Similarly, in the second mode, since the activation section of the first delay clock RISING_CLK is relatively broad but the activation section of the second delay clock FALLING_CLK is relatively narrow, the weight selection signal WR_SEL goes to a logic low level and thus the weight is applied to the second delay clock FALLING_CLK. As a result, the duty ratio of the DLL clock DLL_CLK_USE outputted finally can be 50 to 50 exactly.
FIG. 3 is a timing diagram illustrating waveforms of input/output clocks or signals before and after a failure occurs under the worst operating condition in the conventional DLL of FIG. 1.
Referring to FIG. 3, it can be appreciated that a problem may occur in the conventional DLL if the weight selection signal WR_SEL is undesirably changed under the worst operating condition of the semiconductor memory device, for example, noise interference, PVT variation or frequent entry/exit of a power down mode.
Specifically, it can be observed that waveforms of input/output clocks shown in the left of FIG. 3 before a failure occurs is identical to those in the second mode of the after-delay-locked state as illustrated in FIG. 2. That is, before the failure occurs, the activation section of the first delay clock RISING_CLK is relatively broad but the activation section of the second delay clock FALLING_CLK is relatively narrow in a state that the rising edges of the first and second delay clocks RISING_CLK and FALLING_CLK are delay locked with the rising edge of the reference clock REF_CLK.
In this state before the failure occurs, the duty ratio between the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY is set to 50 to 50 by applying a weight to the second delay clock FALLING_CLK using the weight selection signal WR_SEL.
Meanwhile, if noise interference, PVT variation or frequent entry/exit of a power down mode takes place in the semiconductor memory device, the rising edges of the first and second delay clocks RISING_CLK and FALLING_CLK, which has been delay locked, may not coincide with each other.
Of course, the delay-locking unit 100 detects the non-coincidence state, and then again operates delay locking the rising edges of the first and second delay clocks RISING_CLK and FALLING_CLK of which phases do not coincide with each other.
However, under the worst operating condition where the noise interference, the PVT variation or the frequent entry/exit of a power down mode becomes severer and severer, a rising edge point of the first delay clock RISING_CLK may lag behind a falling edge point of the second delay clock FALLING_CLK in operation after the failure occurs, which will be depicted in the right of FIG. 3.
If a rising edge point ({circle around (1)}) of the first delay clock RISING_CLK lags behind a falling edge point ({circle around (2)}) of the second delay clock FALLING_CLK, the phase detection unit 120 malfunctions because the phase detection unit 120 compares a falling edge point ({circle around (4)}) of the first delay clock RISING_CLK with the falling edge point ({circle around (2)}) of the second delay clock FALLING_CLK assuming that the rising edge points ({circle around (1)} and {circle around (3)}) of the first and second delay clocks RISING_CLK and FALLING_CLK are equal to each other. Accordingly, the phase detection unit 120 incorrectly compares a falling edge point ({circle around (5)}) of the first delay clock RISING_CLK, which is earlier by one period than the falling edge point ({circle around (4)}) of the first delay clock RISING_CLK, with the falling edge point ({circle around (2)}) of the second delay clock FALLING_CLK.
That is, although the phase mixing unit 140 should determine that the activation section of the first delay clock RISING_CLK is greater than the activation section of the second delay clock FALLING_CLK and thus apply a weight to the second delay clock FALLING_CLK using the weight selection signal WR_SEL, the phase mixing unit 140 malfunctions during the worst operating condition such as noise interference, PVT variation and frequent entry/exit of a power down mode. This leads to a problem in that the phase mixer 140 incorrectly determines that the activation section of the second delay clock FALLING_CLK seems to be greater than the activation section of the first delay clock RISING_CLK and thus apples a weight to the first delay clock RISING_CLK using the weight selection signal WR_SEL.
Consequently, the duty ratio between the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY is changed. Even if data are outputted corresponding to the DLL clocks DLL_CLK_USE and DLL_CLK_DUMMY with the duty ratio changed, the memory controller cannot receive correct data so that it is impossible to normally input/output data, causing malfunction in a system.
This problem is more likely to occur if the external clock CLK and CLKB has a shorter period. As the period of the external clock CLK and CLKB becomes shorter, an operating speed of the semiconductor memory device becomes faster. Since it is expected that the operating speed of the semiconductor memory device will be much faster than now, there is a great likelihood that the above-described problem occurs in semiconductor memory devices that will be developed in the future.